export const handlePageTable = {
	methods: {
		currentChange(val) {
		  this.listQuery.page = val;
          this.changePageCoreRecordData();
          this.pagination.pageNumber = val;
          this.getLists(this.methodUrl);
		},
		sizeChange(val) {
			this.listQuery.page_size = val;
            this.changePageCoreRecordData();
            this.pagination.pageSize = val;
            this.getLists(this.methodUrl);
		},
		// 设置选中的方法
		setSelectRow() {
			if (!this.multipleSelectionAll || this.multipleSelectionAll.length <= 0) {
				return;
			}
			// 标识当前行的唯一键的名称
			let idKey = this.idKey;
			let selectAllIds = [];
			let that = this;
			this.multipleSelectionAll.forEach(row => {
				selectAllIds.push(row[idKey]);
			});
			this.$refs.tableIndex.clearSelection();
			for (var i = 0; i < this.tableData.length; i++) {
				if (selectAllIds.indexOf(this.tableData[i][idKey]) >= 0) {
					// 设置选中，记住table组件需要使用ref="tableIndex"
					this.$refs.tableIndex.toggleRowSelection(this.tableData[i], true);
				}
			}
		},
		// 记忆选择核心方法
		changePageCoreRecordData() {
			// 标识当前行的唯一键的名称
			let idKey = this.idKey;
			let that = this;
			// 如果总记忆中还没有选择的数据，那么就直接取当前页选中的数据，不需要后面一系列计算
			if (this.multipleSelectionAll.length <= 0) {
				this.multipleSelectionAll = this.multipleSelection;
				return;
			}
			// 总选择里面的key集合
			let selectAllIds = [];
			this.multipleSelectionAll.forEach(row => {
				selectAllIds.push(row[idKey]);
			});
			let selectIds = [];
			// 获取当前页选中的id
			this.multipleSelection.forEach(row => {
				selectIds.push(row[idKey]);
				// 如果总选择里面不包含当前页选中的数据，那么就加入到总选择集合里
				if (selectAllIds.indexOf(row[idKey]) < 0) {
					that.multipleSelectionAll.push(row);
				}
			});
			let noSelectIds = [];
			// 得到当前页没有选中的id
			this.tableData.forEach(row => {
				if (selectIds.indexOf(row[idKey]) < 0) {
					noSelectIds.push(row[idKey]);
				}
			});
			noSelectIds.forEach(id => {
				if (selectAllIds.indexOf(id) >= 0) {
					for (let i = 0; i < that.multipleSelectionAll.length; i++) {
						if (that.multipleSelectionAll[i][idKey] == id) {
							// 如果总选择中有未被选中的，那么就删除这条
							that.multipleSelectionAll.splice(i, 1);
							break;
						}
					}
				}
			});
		},
	}
}

